const moment = require('moment');
module.exports = {
    
    /**
     * api调用器
     * @param {object} param 调用淘宝API需要传入的参数
     * @param {*} param.api api地址
     * @param {*} param.autoSession false
     * @param {*} param.data api 参数
     */
    async topApi(context,param) {
        const result = await context.cloud.topApi.invoke(
            param
        );
        return result;
    },

    /**
     * 判断用户是否是会员
     * @param {*} context 上下文
     * @param {*} access_token 商家 token
     * @param {*} mix_nick 用户 mix_nick
     */
    async taobaoApiToMember(context,access_token,mix_nick) {
        const identity = await context.cloud.topApi.invoke({
            api:'taobao.crm.member.identity.get',
            autoSession: false,
            data:{
                session: access_token,
                mix_nick: mix_nick
            }
        });
        if (identity.result.member_info) {// 是会员
            return true;
        }else {
            return false;
        }
    },

    /**
     * 判断用户是否有购买过商品
     * @param {*} context 
     * @param {*} access_token 商家 token
     * @param {*} open_id 用户open_id
     * @param {Object} param 参数
     *  @param {String} access_token 用户token
     *  @param {String} open_id 用户 open_id
     *  @param {String} start_created 查询范围开始时间
     *  @param {String} end_created 结束时间
     */
    async taobaoApiToIsSoldOrders(context,access_token,open_id,start_created,end_created,type,status) {
        const trades = await context.cloud.topApi.invoke({
            api:'taobao.open.trades.sold.get',
            autoSession: false,
            data: {
                session: access_token,
                fields: 'tid,orders',
                buyer_open_id: open_id,
                start_created: start_created,
                end_created: end_created,
                type: type,// tmall_i18n
                status: status,// 交易成功
                page_no: 1,
                page_size: 100
            }
        });
        // 判断用户是否有购买过订单
        if (!trades || trades.total_results <= 0) {
            return false;
        } else {
            return true;
        }
    },
    

    /**
     * 查询用户淘宝订单列表
     * @param {*} context 
     * @param {String} access_token 商家 token
     * @param {String} open_id 用户open_id
     * @param {String} start_created 查询范围开始时间
     * @param {String} end_created 结束时间
     * @param {String} type 交易类型
     * @param {String} status 交易状态
     */
    async taobaoApiToSoldOrders(context,access_token,open_id,start_created,end_created,type,status) {
        const trades = await context.cloud.topApi.invoke({
            api:'taobao.open.trades.sold.get',
            autoSession: false,
            data: {
                session: access_token,
                fields: 'tid,orders',
                buyer_open_id: open_id,
                start_created: start_created,
                end_created: end_created,
                type: type,// tmall_i18n
                status: status,// 交易成功
                page_no: 1,
                page_size: 100
            }
        });
        return trades;
    },
    /**
     * CRM会员积分变更接口
     * @param {*} context 
     * @param {*} access_token 
     * @param {*} open_id 
     * @param {String} opt_type 操作类型，0：增加，1：扣减 （注意需要传字符串！！）
     * @param {*} quantity  积分数量
     */
    async changePoint(context,access_token,open_id,opt_type,quantity) {
        //变更类型：0交易，1：互动活动，2：权益兑换，3：手工调整
        const change_type = 1;
        const trades = await context.cloud.topApi.invoke({
            api:'taobao.crm.point.change',
            autoSession: false,
            data: {
                session: access_token,
                change_type,
                open_id,
                opt_type,
                quantity
            }
        });
        return trades;
    },
}